Apprendre R en 10 minutes
R est un langage de programmation et un environnement puissant pour le calcul statistique, l’analyse de données et la visualisation. Ce tutoriel couvre les concepts essentiels pour vous lancer dans la programmation R.
1. Premiers pas avec R
Commençons par un programme simple. Ouvrez R ou RStudio et entrez le code suivant :
print("Hello, World!")
Vous pouvez également exécuter ceci dans la console R. Le résultat sera :
[1] "Hello, World!"
Ce programme simple démontre la fonctionnalité de base de sortie de R. La fonction print()
affiche des informations textuelles dans la console.
2. Syntaxe de base et variables
La syntaxe de R est conçue pour le calcul statistique et l’analyse de données. Explorons l’affectation de variables et les opérations de base.
# Ceci est un commentaire
x <- 5 # Affectation avec l'opérateur <-
y = 10 # Affectation avec l'opérateur = (moins courant)
print(x + y)
Règles de syntaxe de base en R :
- Affectation : Utilisez
<-
pour l’affectation de variables (préféré) ou=
- Commentaires : Les commentaires d’une seule ligne commencent par
#
- Fonctions : Utilisez des parenthèses
()
pour les appels de fonctions - Vecteurs : R est vectorisé - les opérations fonctionnent sur des vecteurs entiers
3. Types de données et structures
R possède plusieurs types de données fondamentaux et structures pour le calcul statistique.
3.1 Types de données de base
# Numérique (double)
num <- 3.14
print(class(num))
# Entier
int <- 42L
print(class(int))
# Caractère (chaîne)
text <- "Hello R"
print(class(text))
# Logique (booléen)
flag <- TRUE
print(class(flag))
3.2 Vecteurs
Les vecteurs sont la structure de données fondamentale en R. Ce sont des tableaux unidimensionnels qui peuvent contenir des données numériques, caractères ou logiques.
# Création de vecteurs
numeric_vector <- c(1, 2, 3, 4, 5)
character_vector <- c("apple", "banana", "cherry")
logical_vector <- c(TRUE, FALSE, TRUE)
# Opérations sur les vecteurs
print(numeric_vector * 2) # Multiplier chaque élément par 2
print(numeric_vector + 1) # Ajouter 1 à chaque élément
print(length(numeric_vector)) # Obtenir la longueur du vecteur
3.3 Listes
Les listes sont des conteneurs flexibles qui peuvent contenir des éléments de types différents.
# Création d'une liste
my_list <- list(
name = "John",
age = 30,
scores = c(85, 92, 78),
active = TRUE
)
# Accès aux éléments de la liste
print(my_list$name)
print(my_list[["age"]])
print(my_list[[3]])
3.4 Data Frames
Les data frames sont la structure de données la plus importante pour l’analyse de données en R. Ils ressemblent à des tables avec des lignes et des colonnes.
# Création d'un data frame
df <- data.frame(
name = c("Alice", "Bob", "Charlie"),
age = c(25, 30, 35),
score = c(88, 92, 85)
)
# Visualisation du data frame
print(df)
print(str(df)) # Structure du data frame
print(summary(df)) # Statistiques récapitulatives
4. Opérations de base
R fournit un riche ensemble d’opérateurs pour les opérations mathématiques et logiques.
# Opérations arithmétiques
a <- 10
b <- 3
print(a + b) # Addition
print(a - b) # Soustraction
print(a * b) # Multiplication
print(a / b) # Division
print(a ^ b) # Exponentiation
print(a %% b) # Modulo
print(a %/% b) # Division entière
# Opérations de comparaison
print(a > b) # Supérieur à
print(a == b) # Égal à
print(a != b) # Différent de
print(a <= b) # Inférieur ou égal à
# Opérations logiques
print(TRUE & FALSE) # ET
print(TRUE | FALSE) # OU
print(!TRUE) # NON
5. Structures de contrôle
R fournit des structures de contrôle standard pour le flux du programme.
5.1 Instructions if
age <- 20
if (age >= 18) {
print("Adulte")
} else if (age >= 13) {
print("Adolescent")
} else {
print("Enfant")
}
5.2 Boucles for
# Itération sur un vecteur
fruits <- c("apple", "banana", "cherry")
for (fruit in fruits) {
print(fruit)
}
# Utilisation d'une séquence
for (i in 1:5) {
print(paste("Nombre :", i))
}
5.3 Boucles while
count <- 1
while (count <= 5) {
print(count)
count <- count + 1
}
6. Fonctions
Les fonctions en R sont des blocs de code réutilisables pour des tâches spécifiques.
# Définition de fonction de base
calculate_area <- function(length, width) {
area <- length * width
return(area)
}
# Appel de la fonction
result <- calculate_area(5, 3)
print(result)
# Fonction avec paramètres par défaut
greet <- function(name = "Invité") {
return(paste("Bonjour,", name))
}
print(greet("Alice"))
print(greet()) # Utilise le paramètre par défaut
7. Manipulation de données
R excelle dans la manipulation de données. Explorons quelques opérations de base.
# Data frame d'exemple
students <- data.frame(
name = c("Alice", "Bob", "Charlie", "Diana"),
math_score = c(85, 92, 78, 95),
science_score = c(88, 90, 82, 96),
grade = c("A", "A", "B", "A")
)
# Sous-ensemble de données
print(students[students$math_score > 85, ]) # Lignes où math_score > 85
print(students[, c("name", "math_score")]) # Colonnes spécifiques
# Ajout de nouvelles colonnes
students$total_score <- students$math_score + students$science_score
students$average_score <- students$total_score / 2
print(students)
8. Visualisation de données
R possède des capacités de visualisation puissantes, notamment avec ggplot2.
# Graphique de base (R de base)
# Création de données d'exemple
x <- 1:10
y <- x^2
# Nuage de points
plot(x, y, main = "Nuage de points", xlab = "X", ylab = "Y", col = "blue", pch = 16)
# Graphique en ligne
plot(x, y, type = "l", main = "Graphique en ligne", xlab = "X", ylab = "Y", col = "red")
# Histogramme
hist(rnorm(100), main = "Histogramme", xlab = "Valeurs", col = "lightblue")
8.1 Utilisation de ggplot2 (si installé)
# Installer et charger ggplot2 si pas déjà installé
# install.packages("ggplot2")
library(ggplot2)
# Création d'un data frame d'exemple
plot_data <- data.frame(
category = c("A", "B", "C", "D"),
value = c(25, 40, 30, 35)
)
# Création d'un diagramme en barres
ggplot(plot_data, aes(x = category, y = value)) +
geom_bar(stat = "identity", fill = "steelblue") +
labs(title = "Exemple de diagramme en barres", x = "Catégorie", y = "Valeur") +
theme_minimal()
9. Analyse statistique
R est conçu pour le calcul statistique. Voici quelques fonctions statistiques de base.
# Données d'exemple
data <- c(23, 45, 67, 34, 56, 78, 89, 12, 45, 67)
# Statistiques de base
print(mean(data)) # Moyenne
print(median(data)) # Médiane
print(sd(data)) # Écart-type
print(var(data)) # Variance
print(min(data)) # Minimum
print(max(data)) # Maximum
print(summary(data)) # Résumé à cinq nombres
# Corrélation
x <- 1:10
y <- x + rnorm(10) # Ajout de bruit
print(cor(x, y)) # Coefficient de corrélation
# Régression linéaire
model <- lm(y ~ x)
print(summary(model))
10. Travail avec les fichiers
R fournit des fonctions pour lire et écrire des fichiers.
# Écriture dans un fichier
write.csv(students, "students.csv", row.names = FALSE)
# Lecture depuis un fichier
# read_data <- read.csv("students.csv")
# print(read_data)
# Travail avec les fichiers texte
# writeLines(c("Ligne 1", "Ligne 2", "Ligne 3"), "example.txt")
# text_content <- readLines("example.txt")
# print(text_content)
11. Packages et bibliothèques
La puissance de R provient de son écosystème étendu de packages.
# Installation des packages
# install.packages("dplyr") # Pour la manipulation de données
# install.packages("ggplot2") # Pour la visualisation
# Chargement des packages
library(dplyr)
library(ggplot2)
# Utilisation de dplyr pour la manipulation de données
# students %>%
# filter(math_score > 85) %>%
# select(name, math_score) %>%
# arrange(desc(math_score))
12. Gestion des erreurs
R fournit des mécanismes pour la gestion des erreurs.
# Gestion d'erreur de base
tryCatch({
result <- 10 / 0
print(result)
}, error = function(e) {
print(paste("Erreur survenue :", e$message))
}, finally = {
print("Ceci s'exécute toujours")
})
# Utilisation de try()
result <- try(10 / 0, silent = TRUE)
if (inherits(result, "try-error")) {
print("Division échouée")
}
13. Sujets avancés
13.1 Fonctions de la famille Apply
Les fonctions de la famille apply sont puissantes pour les opérations vectorisées.
# Création d'une matrice
mat <- matrix(1:12, nrow = 3, ncol = 4)
print(mat)
# Application de fonctions
print(apply(mat, 1, mean)) # Moyennes par ligne
print(apply(mat, 2, sum)) # Sommes par colonne
# lapply pour les listes
my_list <- list(a = 1:5, b = 6:10, c = 11:15)
print(lapply(my_list, mean)) # Moyenne de chaque élément de liste
# sapply (version simplifiée)
print(sapply(my_list, mean))
13.2 Manipulation de chaînes
text <- "Hello R Programming"
print(toupper(text)) # Conversion en majuscules
print(tolower(text)) # Conversion en minuscules
print(nchar(text)) # Comptage des caractères
print(substr(text, 1, 5)) # Extraction de sous-chaîne
# Utilisation du package stringr (si installé)
# library(stringr)
# str_split(text, " ") # Division de chaîne
13.3 Date et heure
# Date et heure actuelles
current_time <- Sys.time()
print(current_time)
# Formatage des dates
formatted_date <- format(current_time, "%Y-%m-%d")
print(formatted_date)
# Arithmétique des dates
today <- Sys.Date()
future_date <- today + 30
print(future_date)
14. Bonnes pratiques
Voici quelques conseils pour écrire un meilleur code R :
- Utilisez des noms de variables significatifs
- Commentez votre code de manière appropriée
- Utilisez des opérations vectorisées au lieu de boucles quand c’est possible
- Chargez les packages au début de votre script
- Utilisez une indentation cohérente (2 espaces recommandés)
- Testez votre code avec des données d’exemple
- Utilisez le contrôle de version pour vos projets
15. Prochaines étapes
Pour continuer à apprendre R :
- Pratique : Travaillez sur de petits projets d’analyse de données
- Explorez les packages : Apprenez dplyr, ggplot2, tidyr et d’autres packages essentiels
- Ressources en ligne : Utilisez la documentation R, Stack Overflow et R-bloggers
- Livres : “R for Data Science” par Hadley Wickham
- Cours : Suivez des cours en ligne sur l’analyse de données avec R
R est un outil puissant pour le calcul statistique et l’analyse de données. Avec de la pratique, vous serez capable d’effectuer des manipulations de données complexes, de créer de belles visualisations et de mener des analyses statistiques sophistiquées.